package cn.biplam.front.template.base;

import cn.biplam.common.tools.TOOLS;
import cn.biplam.common.wrapper.ErrorMessage;
import cn.biplam.front.html.HtmlAnchor;
import cn.biplam.front.html.HtmlDiv;
import cn.biplam.front.html.HtmlImage;
import cn.biplam.front.html.HtmlText;
import cn.biplam.front.html.base.HtmlWindow;
import cn.biplam.front.html.base.Const.Align_Type;
import cn.biplam.front.html.base.Const.Float_Type;
import cn.biplam.front.html.base.Const.Window_Event;

/**
 * 含图片和文字的按钮(图片+文字 高度14)
 */
public class ButtonImageTextLittle {

	private HtmlDiv button;
	private String pageID;//页面ID
	private String msgText;//文字
	private String imageUrl;//图片
	private String script;//脚本
	private int width = 0;//宽度
	/** 最小字数 */
	private int minWordNumb = -1;
	/** 标题文字宽度 */
	private int titleWidth = 0;
	
	/**
	 * 构造方法
	 * @param ID		页面ID
	 * @param msgText	按钮文本
	 * @throws ErrorMessage 
	 */
	public ButtonImageTextLittle(String ID,
			String msgText) throws ErrorMessage{
		this.pageID = ID;
		this.msgText=msgText;
	}
	
	/**
	 * 构造方法
	 * @param ID		页面ID
	 * @param msgText	按钮文本
	 * @param sHomeUrl  应用系统路径
	 * @param imageUrl	按钮图片路径(图片相对路径)
	 * @throws ErrorMessage 
	 */
	public ButtonImageTextLittle(String ID,
			String msgText,
			String sHomeUrl,
			String imageUrl) throws ErrorMessage{
		this.pageID = ID;
		this.msgText=msgText;
		this.imageUrl=sHomeUrl+imageUrl;
	}
	
	/**
	 *  设置文字区域显示的最少英文字符数占位
	 * @param minWordNumb 字数
	 */
	public void setMinWords(int minWordNumb){
		this.minWordNumb = minWordNumb;
	}
	
	/**
	 *  设置点击事件
	 * @param script 点击脚本
	 */
	public void setBind(String script){
		this.script = script;
	}
	
	/**
	 * @return 页面占位宽度
	 */
	public int getWidth(){
		return this.width;
	}
	
	/**
	 * 返回设置好的Html控件
	 * @return HtmlWindow
	 */
	public HtmlWindow get() throws ErrorMessage{
		create();
		return this.button;
	}
	
	/**
	 *  设置宽度
	 */
	private void setWidth(){
		//图片宽度
		int picWidth = 0;
		if(this.imageUrl!=null){
			picWidth = 16;
		}
		
		//文字宽度
		if(this.msgText!=null){
			if(this.minWordNumb>0 && this.minWordNumb>this.msgText.getBytes().length){
				this.titleWidth = TOOLS.getPxLength(minWordNumb);
			}else{
				this.titleWidth = TOOLS.getTextLength(this.msgText);
			}
		}
		//设置总宽度为 图片宽度+文字宽度
		this.width = picWidth+this.titleWidth;
	}
	
	/**
	 * @return 创建控件
	 */
	private HtmlWindow create() throws ErrorMessage{
		setWidth();//设置宽度
		//最外层DIV
		this.button = new HtmlDiv(this.pageID);
		
		//图片和文字超级链接
		HtmlAnchor anchor = new HtmlAnchor();
		anchor.setStyleWidth(this.width);
		//绑定鼠标进入事件
		anchor.bind(Window_Event.OnmouseOver, "ab(this);");//改变底色
		//绑定鼠标点击事件
		if(this.script!=null)
			anchor.bind(Window_Event.OnClick,this.script);
		
		//放置图片和文字的容器
		HtmlDiv innerCon = new HtmlDiv();
		
		//图片
		if(this.imageUrl!=null){
			HtmlDiv picDiv = new HtmlDiv();
			picDiv.setFloat(Float_Type.Left);//设置向左浮动
			picDiv.setStyleHeight(14);//设置高度
			picDiv.setStyleWidth(16); //设置宽度
			HtmlImage pic = new HtmlImage(this.imageUrl);
			pic.setFloat(Float_Type.Left);
			pic.setStyleHeight(12);
			pic.setStyleWidth(12);
			pic.setMarginTop("2");
			picDiv.put(pic);
			innerCon.put(picDiv);
		}
		//文字
		HtmlText title = new HtmlText(null,null,this.msgText);
		title.setTextAlign(Align_Type.left);
		title.setFloat(Float_Type.Left);
		title.setStyleWidth(this.titleWidth);//设置宽度
		title.setMarginLeft("0");
		innerCon.put(title);
		
		anchor.put(innerCon);
		this.button.put(anchor);
		return this.button;
	}
}
